<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $connection = 'mysql_pclady';
    protected $table = 'category';

    /**
     * 获取分类树，指定分类则返回指定分类极其子分类，不指定则返回所有分类树
     * @param  integer $id    分类ID
     * @return array          分类树
     * @author 麦当苗儿 <zuojiazi@vip.qq.com>
     */
    public function getTree($id = 0){
        /* 获取当前分类信息 */
        if($id){
            $info = $this->info($id);
        }
        /* 获取所有分类 */
        $map  = array('status' => 1,'pid'=>$id);
        $list = $this->where($map)->orderBy('sort')->get();
        /* 获取返回数据 */
        if(isset($info)){ //指定分类则返回当前分类极其子分类
            $info['_'] = $list;
        } else { //否则返回所有分类
            $info = $list;
        }
        if($id === 0 ){
            foreach ($list as $key => $obj){
                $map  = array('status' => 1,'pid'=>$obj->id);
                $listSub = $this->where($map)->orderBy('sort')->get();
                $obj->subNav= $listSub;
            }
        }
        return $info;
    }
    /**
     * 获取分类详细信息
     * @param  milit   $id 分类ID或标识
     * @return array     分类信息
     * @author 麦当苗儿 <zuojiazi@vip.qq.com>
     */
    public function info($id){
        /* 获取分类信息 */
        $map = array();
        if(is_numeric($id)){ //通过ID查询
            $map['id'] = $id;
        } else { //通过标识查询
            $map['name'] = $id;
        }
        return $this->where($map)->get();
    }

    /**
     * 获取指定分类子分类ID
     * @param  string $cate 分类ID
     * @return string       id列表
     * @author 麦当苗儿 <zuojiazi@vip.qq.com>
     */
    public function getChildrenId($cate = 0){
        $category = $this->getTree($cate);
        $ids[]    = $cate;
        //second category
        foreach ($category['_'] as $key => $obj) {
            $ids[] =  $obj->id;
        }
        return $ids;
    }
}
